package com.techsoul.module.contract.pojo.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

import java.util.Date;

/**
 * 合同主表 Vo
 * 
 * @author liuen
 * @date 2022-08-17
 */
@Data
@Accessors(chain = true)
public class ConContractVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID")
    private String id;

    @ApiModelProperty("")
    private String saleBuyType;

    @ApiModelProperty("合同编号")
    private String contractNo;

    @ApiModelProperty("合同名称")
    private String contractName;  // 需要输入

    @ApiModelProperty("订单号")
    private String purchaseOrderNo;

    @ApiModelProperty("公司编号")
    private String companyNo;

    @ApiModelProperty("负责人员")
    private String dutyPerson;

    @ApiModelProperty("合同类型")
    private String contractType; // 需要输入 下拉框

    @ApiModelProperty("合同属性") // 需要输入 下拉框
    private String contractProperty;

    @ApiModelProperty("交易条款简述")
    private String tradeTermDesc; // 需要输入

    @ApiModelProperty("项目名称")
    private String projectName; // 需要输入 下拉框

    @ApiModelProperty("甲方编码")
    private String verdorCode; // 需要输入 弹出框 参考运单页面上的弹出框

    @ApiModelProperty("甲方名称")
    private String vendornm; // 需要输入

    @ApiModelProperty("收货人编码")
    private Long consigneeId; // 需要输入  弹出框 参考运单页面上的弹出框

    @ApiModelProperty("收货人名称")  // 合同是为乙方服务，这里是指乙方的收货人 如果有的话
    private String consigneeName;

    @ApiModelProperty("合同签订日期")
    private Date contractSignDate; // 需要输入

    @ApiModelProperty("合同签订地址") // 需要输入
    private String contractSignAddress;

    @ApiModelProperty("合同有效开始日期") // 需要输入  日期
    private Date contractEffectDate;

    @ApiModelProperty("合同失效日期") // 需要输入  日期
    private Date contractUneffectDate;

    @ApiModelProperty("付款方式")
    private String paymentType; // 需要输入  下拉框

    @ApiModelProperty("交易货币")
    private String currencyCode;  // 需要输入  下拉框

    @ApiModelProperty("付款账期")
    private String paymenTerms;  // 需要输入  下拉框 选数字

    @ApiModelProperty("价格失效日期")
    private String priceUneffectDate;  // 需要输入

    @ApiModelProperty("产品编码")
    private String productCode;

    @ApiModelProperty("交易产品日期")
    private String productCodeName;

    @ApiModelProperty("运输方式")
    private String transportType; // 需要输入   下拉框

    @ApiModelProperty("发货国家")
    private String departureCountry; // 需要输入   下拉框

    @ApiModelProperty("发货港口") // 需要输入   下拉框
    private String departureHarbor;

    @ApiModelProperty("到货国家") // 需要输入   下拉框
    private String deliveryCountry;

    @ApiModelProperty("到货港口") // 需要输入   下拉框
    private String deliveryHarbor;

    @ApiModelProperty("送货地址") // 需要输入
    private String deliveryAddress;

    @ApiModelProperty("海外运输费") // 需要输入
    private BigDecimal overseasFreightFee;

    @ApiModelProperty("国内运输费")
    private BigDecimal domesticFreightFee; // 需要输入

    @ApiModelProperty("保险费") // 需要输入
    private BigDecimal insuranceExpense;

    @ApiModelProperty("托盘费") // 需要输入
    private BigDecimal palletCost;

    @ApiModelProperty("信用")
    private BigDecimal creditCost;

    @ApiModelProperty("佣金") // 需要输入
    private BigDecimal commission;

    @ApiModelProperty("送货条款") // 需要输入
    private String deliveryTermDesc;

    @ApiModelProperty("送货时长") // 需要输入
    private String deliveryTerm;

    @ApiModelProperty("")
    private Long version;

    @ApiModelProperty("")
    private String noteText;

    @ApiModelProperty("")
    private String status;

    @ApiModelProperty("")
    private String dutyDepartmentNo;

    @ApiModelProperty("客户名称")
    private String customerName;// 合同乙方名称

    @ApiModelProperty("客户编码")  // 合同乙方
    private String customerNo;

    @ApiModelProperty("")
    private String carrierName;

    @ApiModelProperty("")
    private String carrierNo;

    @ApiModelProperty("结算货币")
    private String settlementCurrencyNo;

    @ApiModelProperty("项目编码")
    private String projectNo;

    @ApiModelProperty("")
    private String type;

    @ApiModelProperty("")
    private String supplierSite;

    @ApiModelProperty("")
    private String pickupAddress;

    @ApiModelProperty("")
    private String depart;

    @ApiModelProperty("")
    private String destination;

    @ApiModelProperty("")
    private Long paymentTerm;

    @ApiModelProperty("")
    private String departPort;

    @ApiModelProperty("")
    private String destPort;

    @ApiModelProperty("")
    private String departPortAddress;

    @ApiModelProperty("")
    private String destPortAddress;

    @ApiModelProperty("")
    private String totProvect;

    @ApiModelProperty("")
    private String nextProver;

    @ApiModelProperty("")
    private String contractUploadPath;

    @ApiModelProperty("")
    private String lastProver;

    @ApiModelProperty("审批状态")
    private String approveStatus;

    @ApiModelProperty("合同附件数量")
    private String docCt;

    @ApiModelProperty("材料1")
    private String attachment1;

    @ApiModelProperty("材料2")
    private String attachment2;

    @ApiModelProperty("材料3")
    private String attachment3;

    @ApiModelProperty("材料4")
    private String attachment4;

    @ApiModelProperty("材料5")
    private String attachment5;

    @ApiModelProperty("合同附件4")
    private String contractdoc4;

    @ApiModelProperty("合同附件3")
    private String contractdoc3;

    @ApiModelProperty("合同附件2")
    private String contractdoc2;

    @ApiModelProperty("合同附件1")
    private String contractdoc1;

    @ApiModelProperty("合同附件5")
    private String contractdoc5;

    @ApiModelProperty("附件附加材料1")
    private String attachmentotherdoc1;

    @ApiModelProperty("")
    private String attachmentotherdoc2;

    @ApiModelProperty("合同材料名称")
    private String contractdocname;

    @ApiModelProperty("合同材料名称2")
    private String contractdocname2;

    @ApiModelProperty("是否为外贸合同")
    private String isForeignTrade;

    @ApiModelProperty("是否先款后货")
    private String outWarehouseAfterPayYn;

    @ApiModelProperty("付款后收货天数")
    private Long inWarehouseAfterPayDays;

    @ApiModelProperty("是否付款后开发票")
    private String invoiceAfterpayYn;

    @ApiModelProperty("是否款后收货")
    private String inWarehouseAfterPayYn;

    @ApiModelProperty("付款后开票天数")
    private Long invoiceAfterPayDays;

    @ApiModelProperty("发货后付款天数")
    private Long payAfterOutWarehouseDays;

    @ApiModelProperty("预付款百分比")
    private BigDecimal prePayPercentBeforeOut;

    @ApiModelProperty("审批文本")
    private String proveText;

    @ApiModelProperty("审批文本1")
    private String proveTextOne;

    @ApiModelProperty("")
    private String proveTextTwo;

    @ApiModelProperty("")
    private String proveTextThree;

    @ApiModelProperty("盈利率")
    private BigDecimal profitRequested;

    @ApiModelProperty("预估费用")
    private BigDecimal estimateFee;

    @ApiModelProperty("")
    private String dutyPersonName;

    @ApiModelProperty("")
    private String contractEstimateNo;

    @ApiModelProperty("是否有需要开评审会")
    private String pingshenYn;

    @ApiModelProperty("")
    private String vendorAddress;

    @ApiModelProperty("")
    private String vendorForShort;

    @ApiModelProperty("")
    private String consigneeAddress;

    @ApiModelProperty("")
    private String consigneeShortName;

    @ApiModelProperty("评审日期")
    private Date pingshengDate;

    @ApiModelProperty("")
    private String specProveUid;

    @ApiModelProperty("")
    private BigDecimal currentBuyerCredit;

    @ApiModelProperty("")
    private BigDecimal currentSellerCredit;

    @ApiModelProperty("")
    private Long materialProductBuyPublishNo;

    @ApiModelProperty("")
    private Long materialProductSalePublishNo;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("是否有效，数据字典 yn_type，1 表示是，0 表示否，默认0")
    private String isValid;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("创建时间")
    private Date createDate;

    @ApiModelProperty("更新人")
    private String updateBy;

    @ApiModelProperty("更新时间")
    private Date updateDate;

    @ApiModelProperty("信用证编码")
    private String creditBillNo;

    @ApiModelProperty("创建人名称")
    private String createByName;

    @ApiModelProperty("更新人名称")
    private String updateByName;

}
